package test.com.linkgie.galaxyframework.binaryserialize;

import com.linkgie.galaxyframework.binaryserialize.BinaryType;
import com.linkgie.galaxyframework.binaryserialize.BinaryField;
import com.linkgie.galaxyframework.binaryserialize.PrimitiveType;

/**
 * 
 */
@BinaryType(code = 0xc, name = "CompositeDatas", description = "")
public interface CompositeDatas {

    @BinaryField(index = 1, primitiveType = PrimitiveType.BOOLEAN)
    boolean isEnable();

    @BinaryField(index = 2, isEnum = true)
    EnumLevel getLevel();

    @BinaryField(index = 3, isObject = true)
    PrimitiveDatas getPrimitive();

    @BinaryField(index=4, iterable = true, isObject=true, isAbstract = true)
    Operation[] getOperations();

    @BinaryField(index = 5, primitiveType = PrimitiveType.INT16)
    short getAge();

}
